.\" Copyright (C) Roy Hills, NTA Monitor Ltd.
.\"
.\" Copying and distribution of this file, with or without modification,
.\" are permitted in any medium without royalty provided the copyright
.\" notice and this notice are preserved.
.\"
.TH GET-OUI 1 "August 13, 2016"
.\" Please adjust this date whenever revising the man page.
.SH NAME
get-oui \- Fetch the arp-scan OUI file from the IEEE website
.SH SYNOPSIS
.B get-oui
.RI [ options ]
.SH DESCRIPTION
.B get-oui
fetches the Ethernet OUI file from the IEEE website, and saves it in the
format used by arp-scan.
.PP
The OUI file contains all of the OUIs (Organizationally Unique Identifiers)
that have been registered with IEEE.  Each OUI entry in the file specifies
the first 24-bits of the 48-bit Ethernet hardware address, leaving the
remaining 24-bits for use by the registering organisation.  For example
the OUI entry "080020", registered to Sun Microsystems, applies to any
Ethernet hardware address from
.I 08:00:20:00:00:00
to
.I 08:00:20:ff:ff:ff
inclusive.  Each OUI assignment represents a total of 2^24 (16,777,216)
Ethernet addresses.
.PP
Every major Ethernet hardware vendor registers an OUI for their equipment,
and larger vendors will need to register more than one.  For example, 3Com
have a total of 37 OUI entries.  Organisations that only produce a small
number of Ethernet devices will often obtain an IAB registration instead.
See
.BR get-iab (1)
for details. 
.PP
This script can be used to update the
.B arp-scan
OUI file from the latest data on the IEEE website.  Most of the Ethernet
addresses in use belong to an OUI registration, so this is the most
important of the files that
.B arp-scan
uses to decode Ethernet hardware addresses.  You should therefore run
.B get-oui
occasionally to keep the
.B arp-scan
OUI file up to date.
.PP
The OUI data is fetched from the URL
.I http://standards-oui.ieee.org/oui/oui.txt
and the output file is saved to the file
.I ieee-oui.txt
in the current directory. The URL to fetch the data from can be changed with
the
.B -u
option, and the output file name can be changed with the
.B -f
option.
.PP
The
.I ieee-oui.txt
file that is produced by this script is used by
.B arp-scan
to determine the Ethernet card vendor from its hardware address.
.PP
The directory that
.B arp-scan
will look for the
.I ieee-oui.txt
file depends on the options used when it was built.  If it was
built using the default options, then it will look in
.IR /usr/local/share/arp-scan .
.SH OPTIONS
.TP
.B -h
Display a brief usage message and exit.
.TP
.B -f <fn>
Write the output to the specified file instead of the default
.I ieee-oui.txt.
.TP
.B -u <URL>
Use the specified URL to fetch the raw OUI data from instead of the default
.I http://standards-oui.ieee.org/oui/oui.txt.
.TP
.B -v
Display verbose progress messages.
.SH FILES
.TP
.I ieee-oui.txt
The default output file.
.SH EXAMPLES
.nf
$ get-oui -v
Renaming ieee-oui.txt to ieee-oui.txt.bak
Fetching OUI data from http://standards-oui.ieee.org/oui/oui.txt
Fetched 3467133 bytes
Opening output file ieee-oui.txt
22402 OUI entries written to file ieee-oui.txt
.fi
.SH NOTES
.B get-oui
is implemented in Perl, so you need to have the Perl interpreter installed on
your system to use it.
.PP
.B get-oui
uses the
.I LWP::UserAgent
Perl module to fetch the data from the IEEE website. You must have this module
installed on your system for
it to work. This module is available on most distributions, often called
.IR libwww-perl .
It is also available in source form from CPAN.
.PP
You can use a proxy server by defining the
.I http_proxy
environment variable.
.SH AUTHOR
Roy Hills <Roy.Hills@nta-monitor.com>
.SH "SEE ALSO"
.TP
.BR arp-scan (1)
.TP
.BR get-iab (1)
.TP
.BR arp-fingerprint (1)
.PP
.I http://www.nta-monitor.com/wiki/
The arp-scan wiki page.
